1

当人们从 GitHub 下载我的项目时,我会在启动时启动设置指南,其中包含一个按钮,上面写着“启动连接字符串生成器”。

问题是 GitHub 不存储 .exe,因此我必须在每个视频或教程中解释“打开连接字符串生成器解决方案 > 构建”,然后运行连接字符串生成器或单击按钮“启动连接字符串生成器按钮”。

如果有一种方法可以按需编译 Connection String Builder 项目,这将是我理想的解决方案。

我知道我可以将 Connection String Builder 项目中的表单移动到主 (DataTier.Net) 项目的内部,但如果我不需要这样做,我不想这样做,因为我在桌面上保留了一个快捷方式连接字符串生成器。

ConnectionStringBuilder 的文件夹位于工具文件夹中,该文件夹是主项目的子文件夹。

我一直在寻找一种 Rosylyn 方法来按需编译项目,但是通过谷歌搜索找不到任何东西(我承认看了几页后确实放弃了)。正如下面的代码示例所示,我知道如何检查 .exe 是否存在,并且我希望能够RosylnCompiler.Compile(pathToProject);检查 .exe 是否不存在。

string temp = "../../../Tools/ConnectionStringBuilder/ConnectionBuilder/bin/Debug/ConnectionBuilder.exe";
string path = Path.GetFullPath(temp);
if (File.Exists(path))
{
    string databaseName = ...;
    System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(path, databaseName);
    System.Diagnostics.Process.Start(startInfo);
}
else
{
    MessageBox.Show("Sorry we could not find DataTier.Net Connection String Builder.", "App Not Found", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}

有没有办法做到这一点?如果不是,我可以将我的消息框更新为说明或将表单复制到我的主项目中,但按需编译将是我理想的解决方案。

4

1 回答 1

0

假设没有错误,Visual Studio 将确保在以下情况下构建当前构建配置中的所有项目:1)Build Solution执行命令或 2) 启动当前构建配置(例如,执行Start DebuggingorStart Without Debugging命令时)。此外,假设没有错误,Visual Studio 将在Rebuild Solution执行命令时以当前构建配置构建所有项目。

因此,您应该能够通过将其包含在为解决方案定义的所有构建配置中来确保构建连接字符串构建器应用程序的项目。

有关构建配置的更多信息,请参阅了解构建配置。

此外,除非您只有 Debug 配置,否则不应假设已构建 Connection String Builder 应用程序的 Debug 版本(即,../../../Tools/ConnectionStringBuilder/ConnectionBuilder/bin/Debug/ConnectionBuilder.exe根据您的问题)。如果您的解决方案仅定义了默认的 Debug 和 Release 构建配置,您可以按如下方式确定正确的路径:

#if DEBUG
../../../Tools/ConnectionStringBuilder/ConnectionBuilder/bin/Debug/ConnectionBuilder.exe
#else
../../../Tools/ConnectionStringBuilder/ConnectionBuilder/bin/Release/ConnectionBuilder.exe
#endif
于 2019-07-17T16:29:47.337 回答