Ответ 1
Вы можете использовать..\для перемещения по каталогу.
<PropertyGroup>
<PostBuildEvent>copy "$(TargetPath)" "$(SolutionDir)..\Shared.Lib\$(TargetFileName)"</PostBuildEvent>
</PropertyGroup>
В настоящее время у меня
<PropertyGroup>
<PostBuildEvent>copy "$(TargetPath)" "$(SolutionDir)Shared.Lib\$(TargetFileName)"</PostBuildEvent>
</PropertyGroup>
Я хочу сделать что-то подобное, но один уровень выше $(SolutionDir)
Вы можете использовать..\для перемещения по каталогу.
<PropertyGroup>
<PostBuildEvent>copy "$(TargetPath)" "$(SolutionDir)..\Shared.Lib\$(TargetFileName)"</PostBuildEvent>
</PropertyGroup>
Решение:
copy "$(TargetPath)" "$(SolutionDir)"..\"Shared.Lib\$(TargetFileName)"
Если в кавычках есть ..\
, вместо того, чтобы выполнить команду DOS на одном уровне, это займет буквальное значение.
Это не работает в VS2010.. не разрешается, но становится частью пути
Студия запускает команду что-то вроде этого диска для копирования $:\a\b\bin\debug drive $:\a\b..\c
В .Net Core отредактируйте файл csproj:
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="copy /Y "$(TargetPath)" "$(SolutionDir)"..\"lib\$(TargetFileName)"" />
</Target>
/Y
Подавляет запрос на подтверждение перезаписи существующего файла назначения.
xcopy "$ (TargerDir)." "$ (SolutionDir)..\Installer\Bin \"
Примечание: "../" используется для структуры папок с одним уровнем вверх