我想使用post-build事件自动创建一个nuget包,然后将其复制到我们网络上的共享文件夹,类似这样(版本号1.0.0.0.在MyLib.nuspec文件中指定):
nuget.exe pack "$(SolutionDir)MyLib.nuspec"
xcopy /Y "$(TargetDir)MyLib.1.0.0.0.nupkg" \\folder\subfolder\NuGetPackages
Run Code Online (Sandbox Code Playgroud)
这有效,但现在我想更新这个脚本,以便它也包括程序集版本,但我无法在构建后事件中获得程序集版本.我需要这样的东西:
nuget.exe pack -Version $(AssemblyVersion) "$(SolutionDir)MyLib.nuspec"
xcopy /Y "$(TargetDir)MyLib." + $(AssemblyVersion) + ".nupkg" \\folder\subfolder\NuGetPackages
Run Code Online (Sandbox Code Playgroud)
但是$(AssemblyVersion)变量不存在......有什么想法吗?
.net .net-4.0 visual-studio-2010 assemblyversions post-build-event
嗨我正在运行我的post build事件中的以下命令:
C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\mt.exe -manifest "$(ProjectDir)$(TargetName).exe.manifest" -updateresource:"$(TargetDir)$(TargetName).exe;#1"
Run Code Online (Sandbox Code Playgroud)
退出代码9009失败了......我不明白为什么会这样; 有什么建议?
我的本地nuget库存储库分别用于我的个人和工作相关的类库.
我已经为不再开发的库创建了一些nuget包.我只为他们这样做,因为我不知道如何在项目构建后自动更新它们.
我认为所有的工作都是由nuget命令行和Visual Studio命令提示符完成的.所以我可以很容易地完成我需要的工作(当然我会完全了解命令而不是!)
基本上我希望在项目的post-build事件上执行以下任务.
在项目构建上:
Phil Haack展示了这个功能,但据我所知,它仍然是一个原型.
所以我的要求是上面的.有没有其他人完成这个?
我们有一个大型的VS 2010解决方案,主要是C#代码,但有一些本地DLL,各种C#项目依赖(包括我们的单元测试DLL).我们正在尝试支持32位和64位版本的库.所以我们现在将本机DLL构建为32位和64位.问题是我们的很多C#项目都有后期构建事件,它们将所需的本机DLL复制到项目的TargetDir中.现在我们有两个不同版本的本机DLL(32位和64位),我需要能够指定正确的dir来复制本机DLL.我原本以为我可以简单地在路径中使用$(Platform),如下所示:
copy $(SolutionDir)\NativeDll\$(Platform)\$(Configuration) $(TargetDir)
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为$(Platform)是项目的平台,而不是解决方案级平台.在这种情况下,$(平台)是"任何CPU".从我所看到的C#项目中的后期构建事件宏看,似乎没有办法访问正在构建的解决方案级平台.有没有更好的方法来实现我的目标?
我的post-build事件中有一个这样的命令行:
aspnet_regiis -pef connectionStrings "$(ProjectDir)" -prov "DataProtectionConfigurationProvider"
Run Code Online (Sandbox Code Playgroud)
但是aspnet_regiis由于\目录中的tralling 而返回失败.传递全名,path + web.config也不起作用.
我怎么解决这个问题?
在第二个问题中,有一条评论说要使用
ResHacker.exe -addoverwrite "Project.exe", "Project.exe", "ProgramIcon.ico", ICONGROUP, MAINICON, 0
Run Code Online (Sandbox Code Playgroud)
我也试过用-modify而不是-addoverwrite
ResHacker.exe -modify "Project.exe", "Project.exe", "ProgramIcon.ico", ICONGROUP, MAINICON, 0
Run Code Online (Sandbox Code Playgroud)
但结果是一样的.
图标已更改:如果我右键单击exe文件并检查属性,我看到图标已更改,但在Windows资源管理器中,我仍然看到旧图标.
如果我用Resource Hacker打开它(所以不使用它作为命令行工具,而是作为普通的GUI工具),我在"打开文件"对话框中看到了正确的图标.
有人可以提出解决方案吗?我试图在Delphi post build事件中使用它.
在Visual Studio postbuild中,我需要运行批处理文件.该解决方案可能与Visual Studio运行的驱动器位于不同的驱动器上.在postbuild中,如何确定运行解决方案的驱动器号,以便在运行批处理文件之前更改为该驱动器?目前,我所拥有的只是:
CD $(ProjectDir)
$(ProjectDir)postbuild.bat
Run Code Online (Sandbox Code Playgroud)
问题是当目录位于不同的驱动器上时更改目录不会更改当前目录,因为您必须手动更改您所在的驱动器,例如:
E:\
CD $(ProjectDir)
$(ProjectDir)postbuild.bat
Run Code Online (Sandbox Code Playgroud)
我不能保证解决方案将会在什么驱动器上,所以我需要通过某种宏来确定驱动器,以确保postbuild.bat文件将从当前位置运行.
我在visual studio 2010中有一个项目.这个项目有以下post-build事件命令行:
SET TARGET_PROJECT=TestMain
IF NOT EXIST "$(TargetDir)IceBox" (
XCOPY /E /I /Y "$(SolutionDir)Externals\IceBox" "$(TargetDir)IceBox"
)
IF NOT EXIST "$(TargetDir)bzip2.dll" (
COPY "$(SolutionDir)Externals\IceBox\bzip2.dll" "$(TargetDir)"
)
XCOPY /E /I /Y "$(SolutionDir)Externals\Infragistics" "$(TargetDir)"
Run Code Online (Sandbox Code Playgroud)
但是这个命令只在我创建调试或发布时使用.当我发布我的项目时,将忽略此命令.在发布项目时,是否可以使用此命令?
谢谢你的帮助.
我正在尝试在Visual Studio项目中配置YUICompressor.NET.
据我所知,我必须创建一个.proj文件并将其添加到我的解决方案中.之后,我需要创建一个构建后的事件来构建这个.proj文件,然后我将得到我想要的输出(缩小的js/css文件).
所以我有:

这个.proj包含:
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/MsBuild/2003">
<UsingTask TaskName="CssCompressorTask" AssemblyFile="\..\packages\YUICompressor.NET.MSBuild.2.7.0.0\lib\NET20\Yahoo.Yui.Compressor.Build.MsBuild.dll" />
<UsingTask TaskName="JavaScriptCompressorTask" AssemblyFile="\..\packages\YUICompressor.NET.MSBuild.2.7.0.0\lib\NET20\Yahoo.Yui.Compressor.Build.MsBuild.dll" />
<Target Name="Minify">
<ItemGroup>
<!-- Single files, listed in order of dependency -->
<CssFiles Include="Content\*.css"/>
<JavaScriptFiles Include="Scripts\*.js"/>
</ItemGroup>
<CssCompressorTask
SourceFiles="@(CssFiles)"
OutputFile="Content\min.css"
/>
<JavaScriptCompressorTask
SourceFiles="@(JavaScriptFiles)"
OutputFile="Scripts\min.js"
/>
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
我正在尝试将其构建如下:

我收到以下错误:
The command "msbuild C:\Users\Me\Desktop\MvcApplicationExample\MvcApplicationExample\YuiCompressorMsBuild.proj" exited with code 9009.
Run Code Online (Sandbox Code Playgroud)
此错误表明"msbuild"不是有效命令.那么,我该如何构建这种类型的项目呢?(我已经按照本教程:youtube)
谢谢你的帮助.
我正在尝试使用以下命令行删除输出目录中的文件夹:
del /F "$(TargetDir)Content\"
Run Code Online (Sandbox Code Playgroud)
我总是最终退出错误代码1.我尝试了几种不同的方式,没有/ F,前后都有/没有斜线等.
Error 1 The command "del /F "E:\proj\bin\Windows\Debug\Content\"" exited with code 1.
Run Code Online (Sandbox Code Playgroud)
关于在visual studio中的后期构建事件命令行中删除文件有很多问题,它工作正常,但我似乎无法删除文件夹而不获取代码1.
任何帮助表示赞赏!