Pur*_*ome 1 msbuild post-build-event visual-studio-2008
我有两个问题:visual studio 2008和post-build events.
1)如何动态列出msbuild.exe完整路径,由后期构建事件调用?目前,我有以下(工作得很漂亮,顺便说一句): -
C:\Windows\Microsoft.NET\Framework64\v3.5\msbuild.exe
"$(ProjectDir)MSBuild\MSBuildSettings.xml"
Run Code Online (Sandbox Code Playgroud)
..但只有你有x64位环境才能工作.有没有办法使用一些内置的魔术设置?例如.$(MsBuildPath)msbuild.exe "blah....xml"??
2)我的msbuild任务执行一些操作,然后生成一个txt文件作为输出.我在msbuild xml文件中定义输出路径.
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/MsBuild/2003">
<UsingTask TaskName="CustomTask" AssemblyFile="MyAssembly.dll"/>
<Target>
<CustomTask
...
OutputFile="Foo.txt"
/>
<Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
如何将实际输出文件夹传递给msbuild文件?我试过了...
OutputFile="$(OutDir)Foo.txt"
Run Code Online (Sandbox Code Playgroud)
但那失败了:(
干杯!
我已经找到了回答第二个问题的方法 - 不确定它是否是最好的...所以我对其他想法持开放态度:)
XML文件更改::添加一个设置内部变量名称的属性组,如果没有外部参数传递给msbuild.exe可执行文件.
<PropertyGroup>
<OutputFile Condition=" '$(OutputFile)'=='' ">
..\SomeFolder\Foo.txt</OutputFile>
</PropertyGroup>
<Target>
<CustomTask
...
OutputFile="$(OutputFile)"
/>
<Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
现在,调用msbuild可执行文件,如...
msbuild.exe "C:\Temp Foo\Blah\MsbuildSettings" /p:OutputFile="C:\Folder 1\Folder 2\blah\"
Run Code Online (Sandbox Code Playgroud)
那工作:)
对于问题1,请使用属性MSBuildBinPath
对于问题2,使用属性OutputPath(C#或VB项目)
OutputFile="$(OutputPath)Foo.txt"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7554 次 |
| 最近记录: |