我在Visual Studio 2013中有一个解决方案,我在构建后事件中使用xcopy将必要的文件复制到binDebug
文件夹中。后期构建事件运行良好,当我在 Visual Studio 中运行应用程序时,应用程序可以找到复制到binDebug
文件夹的必要文件。
xcopy "$(SolutionDir)packagesNUnit.Runners.2.6.3*.*" "$(OutDir)....NUnitRunners" /E /I /Y /F
xcopy "$(SolutionDir)ProductionSmokebinDebugProductionSmoke.exe" "$(OutDir)...." /E /I /Y /F
xcopy "$(SolutionDir)ProductionSmokebinDebugProductionSmoke.exe.config" "$(OutDir)...." /E /I /Y /F
但是,当我使用 ClickOnce 发布解决方案时,应用程序会引发一个异常,指出它找不到文件。
private void buttonProductionSmoke_Click(object sender, EventArgs e)
{
var pathToNunitGui = AppDomain.CurrentDomain.BaseDirectory + "NUnitRunners\tools\nunit.exe";
var pathToProductionSmoke = AppDomain.CurrentDomain.BaseDirectory + "ProductionSmoke.exe";
Process.Start(pathToNunitGui, pathToProductionSmoke);
}
我查看了UserAppData
文件夹,在任何地方都看不到binRelease
文件夹。
如何为程序提供文件的路径,以便在使用 ClickOnce 部署后可以访问它们?
在特定配置文件夹下将有一个"app.publish"目录。 此文件夹将包含一个".application"文件和一个"应用程序文件"文件夹。 在"应用程序文件"文件夹中,您将找到包含主二进制文件和从属二进制文件的版本特定文件夹。
文件夹的版本号将取决于 AssemblyInfo.cs 文件的程序集版本。 您应该查看持续集成、MSBuild、NAnt 等,以动态更新此文件以反映正确的版本。