我有一个天蓝色的应用程序。是否可以将其作为免费应用程序共享(因此任何人都可以在自己的azure帐户上部署它),而无需每次都提供源代码并重新编译它。我正在使用azure数据库,所以我需要连接字符串来发出请求,现在它的字符串是硬编码的。此外,我正在使用硬编码连接字符串来访问blob和动态实例分配。是否有办法将这些字符串取出并允许在不重新编译项目的情况下更改它? 感谢。
答案 0 :(得分:1)
是的,绝对的。编译云项目时,它会创建包文件和配置文件。如果需要,您可以分发这些文件。
关于删除连接字符串和其他设置,您可以做的一件事是创建一个与主云项目具有相同设置的单独云项目。唯一的问题是特定于用户环境的设置(如连接字符串)将为空。然后,您将打包此云项目并分发cspkg
和cscfg
文件。
进一步详细说明,请看下面的截图:
基本上我在这里有2个云项目(Web.Azure
和Web.Test.Local
),两个云项目都引用了同一个Web
项目。现在我们的案例Web.Azure
是我们的开发云项目,Web.Test.Local
是测试云项目。这两个项目都具有相同的设置名称,例如SqlConnectionString
。现在在Web.Azure
中,我已将其值指定为我们的开发SQL Server的值,但在Web.Test.Local
中我可以指定任何其他值。当我们希望我们的测试人员测试应用程序时,他们会获得Web.Test.Local
的包,他们会根据该项目获得设置。采用相同的类比,您可以拥有两个云项目(然后调用Dev
和Release
)。您需要做的是在两个云项目中使用相同的设置,但Release
项目中的这些设置不会有任何值。
您可以采取的另一种方法是本博文中描述的内容:http://blog.paraleap.com/post/2011/09/13/Managing-environments-in-a-distributed-Azure-or-other-cloud-based-NET-solution。
请注意cspkg
文件本质上是zip
文件。我可以将包文件的扩展名从cspkg更改为zip并解压缩该文件并查看所有二进制文件。然后,我可以使用像RedGate的Reflector或Telerik的Just Decomplie这样的工具来反编译二进制文件,并可能查看源代码。为避免这种情况,您可能希望在打包之前对二进制文件进行模糊处理。